package com.zzq.my.jetpacks.util

/**
 * 描述：克隆工具类
 * 作者：zhuangzeqin
 * 时间: 2022/12/6-12:07
 * 邮箱：zzq@eeepay.cn
 * 备注:
 */
object CloneUtils {
    /**
     * 拷贝列表
     */
    fun cloned(arrayList: ArrayList<Any>): ArrayList<Any> {
        return arrayList.map {
            when (it) {
                is ArrayList<*> -> cloned(it.toList() as ArrayList<Any>)
                else -> it
            }
        } as ArrayList<Any>
    }
    /**
     *  克隆对象
     *  1 先实现 Cloneable, 重写 clone 方法. 2 model 调用 clone 就会生成一个 全新的对象.
        2 实现序列化, 通过反序列化 new 出来对象
        3 转成 json 字符串, 再转成对象(解析最好在子线程)
        //x.clone()::class == x::class // true
        //x.clone() == x  // false
     */
}